זה אומר שאחרי הכרות עם השפה מה שדורש השקעה אפשר להקדיש את מרבית הזמן לצד המוזיקלי יצירתי ולא התכנותיÆ איזה כיף

Similar documents
ASP.Net MVC + Entity Framework Code First.

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

Reflection Session: Sustainability and Me

המבנה הגאומטרי של מידה

A R E Y O U R E A L L Y A W A K E?

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

Practical Session No. 13 Amortized Analysis, Union/Find

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

THINKING ABOUT REST THE ORIGIN OF SHABBOS

מבוא למחשב בשפת פייתון

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

מבוא לאסמבלי מאת אופיר בק חלקים נרחבים ממאמר זה נכתבו בהשראת הספר "ארגון המחשב ושפת סף" אשר נכתב ע"י ברק גונן לתוכנית גבהים של משרד החינוך.

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

SEEDS OF GREATNESS MINING THROUGH THE STORY OF MOSHE S CHILDHOOD

מבוא לתרבות סייבר שיעור מס

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

Summing up. Big Question: What next for me on my Israel Journey?

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

מושגים בסיסיים תלמידים והורים יקרים,

נילי חמני

Global Day of Jewish Learning

Theories of Justice

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

הבינגמה הדובע תביבסב תונכתל ריהמ ךירדמ

JUDAISM AND INDIVIDUALITY

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

שאלון ו' הוראות לנבחן

מבוא לתכנות ב- JAVA תרגול 7

(MODULE E) ב ה צ ל ח ה!

שאלון ו' הוראות לנבחן

Yetzer Shalom: Inclinations of Peace


עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

CML כנס שנתי של מודעות ל- CML 4-6 לאוקטובר 2018, מלון רמדה, חדרה

מ ש ר ד ה ח י נ ו ך ה פ ד ג ו ג י ת א ש כ ו ל מ ד ע י ם על ה ו ר א ת ה מ ת מ ט י ק ה מחוון למבחן מפמ"ר לכיתה ט', רמה מצומצמת , תשע"ב טור א'

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

Interrogatives. Interrogative pronouns and adverbs are words that are used to introduce questions. They are not inflected for gender or number.

ALEPH-TAU Hebrew School Lesson 204 (Nouns & Verbs-Masculine)

ב "ה. ABC s of Judaism. Fundamentals of Jewish Thought and Practice. June 2007 Tammuz 5767 Jewish Educational Institute Chabad Brisbane

הטכנולוגיה בחינוך ד ר קובי גל אוניברסיטת בן גוריון בנגב

NATIONAL COUNCIL OF YOUNG ISRAEL. Shavuot Nation JEWISH EDITION. Compiled by Gabi Weinberg Teen Program Director

Forgive us, pardon us, grant us atonement Parashat Shelach Lecha June 9, 2018 Rabbi Carl M. Perkins Temple Aliyah, Needham

שאלון ד' הוראות לנבחן

הבסיס כתיבת התכנית הראשונה שימוש במשתנים. הטיפוס הבסיסי object. הטיפוס הבסיסי string משפטי בקרה. שימוש ב- Enumerations. שימוש ב- Namespaces

HEBREW THROUGH MOVEMENT

The Art of Rebuke. Source #1: Story of Kamtzah and Bar Kamtzah Talmud Gittin 55b-56a

אנגלית (MODULE E) בהצלחה!

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

BEING A VISIONARY JOLT LEADERSHIP PROGRAM 2014

דיאלוג מומחז בין מרטין בובר וקרל רוג'רס

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

התכנית הראשונה שלי

Genetic Tests for Partners of CF patients

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

חידת קופרניקוס: למה חלפו 0222 שנה עד לגילוי שכדור הארץ מסתובב סביב השמש? הרצאה של ד"ר בועז כץ

Relationships: Everything Else is Commentary

NJ NCSY Winter Regional פירסומי ניסא Publicizing the Miracle of Hanukah

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

A lot of the time when people think about Shabbat they focus very heavily on the things they CAN T do.

M A K I N G N E G A T I V E S P O S I T I V E

Perashat Re'eh: In the Eyes of God and Man Based on an article by Rav Ari Kahn. Source 1: Devarim Chapter 12

בוחן בתכנות בשפת C בצלחה

מבנה התכנית יסודות מדעי המחשב התכנית הראשונה שלי

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

Bereshit / Exodus 18:1-20:23, Isaiah 6:1-7:6, 9:5-6, Matthew 6:1-8:1. Parashat Yitro

B E N D, S T R A I G H T E N, B A L A N C E

And now Israel, what does Hashem your G-d ask from you but to revere Hashem your G-d

רזולוציה, ,DPI משה רונן ספטמבר 2007

***Place an X if Closed גמרא (if no indication, we ll assume Open חזרה (גמרא of the :דף times

Hebrew Adjectives. Hebrew Adjectives fall into 3 categories: Attributive Predicative Substantive

Apple, keys, pen, pencils, pencilbox,(toy)elephant,( toy) boy, (toy) girl, ball

תכנות בטוח חלק ב ' מאת עידו קנר

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

T H E S U N F L O W E R L I M I T S T O F O R G I V E N E S S

Name Page 1 of 5. דף ז. This week s bechina begins with the fifth wide line at the top of

L fi-kach Nivrah Adam Yehidi! That is why Adam was created all alone!

Which Way Did They Go?

Parashat Balak. Sharon Rimon

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

Structural Vs. Nominal Typing

WISDOM FROM ALL MY TEACHERS: CHALLENGES AND INITIATIVES IN CONTEMPORARY TORAH EDUCATION URIM Publications, 2003 Copyright ATID.

7 קרפ תויגול,תויטמתירא תודוקפ הזזהו

Chofshi.

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

A Hebrew Manuscript of the Book of Revelation British Library, MS Sloane 273. Transcribed and Translated by Nehemia Gordon

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

Transcription:

מדריך FAUST שפת תכנות ליישומי אודיו מחולל גל ריבועי פרויקט מס ± FAUST שפת תכנות המיועדת ליישומי עיבוד אות דיגיטלי במחשב בזמן אמת ומאפשרת להמיר אותם אח כ לפלאגינים בפורמט ÆVst ייחודה של השפה בכך שהיא מאפשרת להתמקד ביישום עצמו שרוצים לתכנן מנקודת מבט של sound design בלי לשבור את הראש עם קוד c על כל המשתמע מכךÆ זה אומר שאחרי הכרות עם השפה מה שדורש השקעה אפשר להקדיש את מרבית הזמן לצד המוזיקלי יצירתי ולא התכנותיÆ איזה כיף אקטמוזיקלי מדריכים מאת חברי הפורום act.co.il

מדריך יצירת מחולל גל ריבועי באמצעות תוכנת פאוסט עבור חברי הפורום אקט מוזיקלי מאת איתמר כץ חבר פורום אקט מוזיקלי http://faust.grame.fr תוכנת פאוסט מתוך אתר האינטרנט What is FAUST? FAUST is a compiled language for real-time audio signal ing. The name FAUST stands for Functional AUdio STream. Its programming model combines two approaches: functional programming and block diagram composition. You can think of FAUST as a structured block diagram language with a textual syntax. What is FAUST intended for? FAUST is intended for developers who need to develop efficient C/C++ audio plugins for existing systems or full standalone audio applications. Thanks to some specific compilation techniques and powerful optimizations, the C++ code generated by the Faust compiler is usually very fast. It can generally compete with (and sometimes outperform) hand-written C code. What does it look like? Programming with FAUST is somehow like working with electronic circuits and signals. A FAUST program is a list of definitions that defines a signal or block-diagram : a piece of code that produces output signals according to its input signals (and maybe some user interface parameters). How does it work? Faust is a compiled language translated to C++. In order to generate the most efficient code, the compilation is based on a semantic approach. Instead of compiling directly the block-diagram as described by the user, the idea is to compile its mathematical meaning (what it actually computes).

FAUST שפת תכנות ליישומי אודיו מחולל גל ריבועי פרוייקט מס ± הקוד בפרוייקט זה הוא בן µ שורות בלבד אך הוא מכיל הרבה מידע לגבי עקרונות בסיסיים של השימוש ב ÆFaust בעיקרון כדי להבין את הקוד בפרוייקט הזה דרוש ידע מתמטי בסיסי וידע קצת יותר מבסיסי בעיבוד אות אבל אני מקווה שעם קצת סבלנות וסקרנות אפשר להבין אותו גם ללא ידע כזהÆ יאללה מתחיליםÆÆÆ מאת איתמר כץ בפרוייקט הראשון המטרה שלנו היא ליצור מחולל גל ריבועי פשוט עם שליטה על התדר של הגל ועל היחס בין החלק החיובי והשלילי במחזור cycle Æ duty ה cycle duty מודגם באיור ±Æ איור ± שליטה על תדר הגל ועל היחס בין החלק החיובי והשלילי במחזור התרשים מתוך אתר וויקיפדיה wikipedia.org/wiki/duty_cycle 3

מחולל גל ריבועי פרויקט מס ± רכיבים בסיסיים בהם נשתמש מומלץ מאוד לנסות לקמפל את כל הדוגמאות במסמך זה באתר של Faust אובייקט גרפי מסוג slider נוצר ע י הפקודה vslider עבור סליידר אנכי או hslider עבור סליידר אפקיÆ התחביר זהה לשתי הפקודות איור פקודה זו יוצרת משתנה בשם slider± סליידר אופקי עם תוית המכילה את הטקסט label טקסט שיופיע ליד הסליידר Æ הערכים שהסליידר מקבל נעים בין min ל max הערך ההתחלתי הוא start והקפיצה המינימלית בין ערכים היא Æstep בדיאגרמה זה נראה כך איור איור תחביר ליצירת סליידר בדוגמה זו סליידר אופקי slider1 = hslider( label, start, min, max, step); איור hslider( Period, 1, 0.1, 100, 0.1) חיבור חיסור כפל חילוק ע י הסימנים הרגילים כלומר Ø כאשר כל סימן מייצג קופסה עם שתי כניסות ויציאה אחת או במילים אחרות פונקציה המקבלת שני משתנים ומוציאה אחדÆ בחיסור וחילוק יש חשיבות לסדר המשתנים לכן בדיאגראמה תופיע נקודה שחורה ליד הכניסה הראשונה מה שמקל על זיהוי הכניסותÆ התחביר יכול להיות תחביר מתמטי רגיל A B A B או תחביר של פונקציה המקבלת שני משתנים או תחביר של שתי כניסות המחוברות בטור ראה בהמשך לקופסת חיסור A B בכל המקרים התוצאה זהה איור נשים לב שבגלל ש A ו B הוגדרו להיות סיגנלים קבועים הציור מייצג קופסה עם אפס כניסות ויציאה אחתÆ איור A B 3-1 4

FAUST שפת תכנות ליישומי אודיו איור µ חיבור בטור A * B int A B חיבור בטור שורה זו מחברת את היציאה או היציאות של A בטור לכניסה או כניסות של ÆB לדוגמה נניח ש A הוא קופסה שמבצעת כפל ולכן יש לה כניסות ויציאה אחת ו B קופסה שהופכת את הכניסה ל integer כניסה אחת יציאה אחת כפי שמתואר באיור µ איור פידבק B - A 1 A B מודולו mod התוצאה היא השארית של חלוקת A ב ÆB זו קופסה עם כניסות ויציאה אחתÆ גם כאן אפשר להשתמש בתחביר של פונקציה כלומר Æ A B כמו בחיסור וחילוק יש חשיבות לסדר הכניסותÆ A ~ B רקורסיה\פידבק המשמעות של פעולה זו היא קח את המוצא של A הכנס אותו ל B ואת המוצא של B הכנס בחזרה ל Æ A זה אומר שב A חייבות להיות מספיק כניסות פנויות כדי לקבל את היציאות של ÆB A ª לדוגמה הקוד הבא B _ ± ª A~B ª + מגדיר את A להיות קופסת חיבור ואת B להיות קופסת חיסור עם ± בכניסה השניה ו כלום בכניסה הראשונה זהו סימן ה _ שמייצג חוט חשמל שרק מעביר את המידע הלאה כפי שניתן לראות באיור Æ ה כל קוד Faust חייב להסתיים בהגדרת ה שהוא המוצא של התכנית מוגדר להיות חיבור רקורסיבי של A לעצמו דרך ÆB המרובע הקטן שנמצא בתחילת המסלול לפידבק ביציאה מקופסת החיבור מסמן דיליי של דגימה בודדת שכן אחרת נקבל מה שנקרא delay free loop כלומר לופ סגור עם דיליי אפס לאורכו וזה חסר משמעותÆ לכן בכל פידבק הקומפיילר מכניס אוטומטית דיליי של דגימה אחת והמרובע מזכיר לנו את זהÆ A B חיבור במקביל התוצאה היא קופסה שבה הכניסות הן כל הכניסות של A וכל הכניסות של B והיציאות הן כל היציאות של A וכל היציאות של ÆB פעולות השוואה בין שני גדלים º æ º æ כל פעולה כזו היא קופסה עם שתי כניסות בחלקן יש חשיבות לסדר כלומר AæB זה לא כמו BæA ויציאה אחת שהיא או אחד בהתאם לתוצאת ההשוואהÆ יש לשים לב ולהפריד ע י רווח אם משתמשים ביחד עם פעולת החיבור בטור כי הסימון º הוא פעולה אחרת לגמריÆ 5

מחולל גל ריבועי פרויקט מס ± הקוד עצמו סופסוףÆÆÆ ØØ ØØ A square wave oscillator ØØ T hslider Period ± Ʊ ± Ʊ ª ØØ Period ms N ± Æر Æ T intª ØØ The period in samples a hslider Cyclic ratio Ƶ ± Ʊ ª ØØ Cyclic ratio i ± ~ N ± ª ØØ ± ÆÆÆÆÆ n i n a º ± ª נבחן את הקוד הבא נשים לב שורות שמתחילות ב ØØ הן הערות שהקומפיילר מתעלם מהןÆ השורה האחרונה מגדירה מה התכנית מוציאה כל קוד חייב להכיל הגדרה למשתנה שמייצג בעצם את הפלט של התכנית אחרת נקבל הודעת שגיאהÆ זה נכון כבובן גם כשמנסים לקמפל את הדוגמאות במסמך זהÆ ב Faust כל משתנה הוא סיגנל המכיל אינסוף ערכים ולא ערך בודדÆ לכן משתנה שערכו ± הוא בעצם סיגנל קבוע ± ± ± ± וכו Æ איור תרשים לתת הבלוק המייצג את השורה הרביעית בקוד N % 100 1-1 + את הפקודה N ~ ± אפשר להבין אם ניזכר בתחביר של ÆA~B כאן ± A ו N ÆB A הוא קופסת חיבור שיש לה ± בכניסה התחתונה ואילו הכניסה העליונה כביכול חסרה הפונקציה קיבלה רק משתנה אחד במקום שניים בתוך הסוגריים Æ הסיבה היא שקופסת החיבור מחוברת בפידבק בחזרה לעצמה דרך B שהוא הקופסה מודולו N בציור כאן בחרתי אותו להיות ± אבל בתכנית הוא נקבע ע י הסליידר Æ T המוצא של קופסת החיבור מחובר בטור לקופסה שמחסרת ±Æ עכשיו נראה מה בעצם מייצר הבלוק הנ ל בזמן t הזמן נמדד בדגימות נכנס לקופסת החיבור ± לכניסה התחתונה ועדיין כלום לכניסה העליונה זיכרו את הדיליי של דגימה אחת Æ אם אין כלום בכניסה הקופסה מפרשת את זה כ ומקבלים ± ± במוצאÆ ב t ± נכנס שוב ± לכניסה הראשונה ו ± ± גם בקופסת המודולו חשוב מי הכניסה העליונה וגם כאן היא נמצאת ליד הנקודה השחורה כלומר נקבל Æ ± ± כך שוב ושוב עד שקופסת המודולו מוציאה וזה קורה ב ± ± והספירה מתחילה מחדשÆ לבסוף מחסירים ± מהסיגנל כדי לקבל ÆÆÆ ± במקום ÆÆÆ ± 6

FAUST שפת תכנות ליישומי אודיו השורה הראשונה שאינה הערה מייצרת סליידר בשם T עם כותרת Period שזה פשוט טקסט שיופיע ליד הסליידרÆ הסליידר T יכול לקבל ערכים בין ±Æ ל ± הערך ההתחלתי הוא ± והקפיצה המינימלית היא Æ Æ± בסוף השורה יש הערה שמזכירה לנו מה תפקיד הסליידר זמן מחזור במילי שניותÆ השורה השנייה מגדירה את המשתנה N שהוא זמן המחזור של הגל הריבועי ב Æsamples אנו מניחים שתדר הדגימה הוא ± וה ± ממיר ממילי שניות לשניותÆ הנקודה בסוף של מספר מגדירה אותו להיות float ולא Æinteger את התוצאה מכניסים בטור לקופסה שעושה cast למספר שלם Æ integer השורה שלישית מייצרת סליידר בשם a שקובע את ה cycle duty להיות בין ל ± Æ השורה הרביעית מייצרת משתנה בעצם סיגנל שרץ מ ועד ± N ואז חזרה ל וחוזר חלילהÆ איור ממחיש כיצד ניראה תת הבלוק שמייצג שורה זו השורה האחרונה מגדירה את המוצא שאמור להיות גל ריבועי וזה עובד כך אם יש N דגימות במחזור ו a הוא מספר בין ל ± שקובע את ה cycle duty אז המכפלה N a אומרת כמה דגימות צריך הסיגנל לבלות בחלק החיובי של המחזור ה גג של הגל הריבועי Æ הפקודה æ i N a משווה בין הסיגנל i שהוא ÆÆ ± עד ± N לגודל N a ומוציאה ± אם i יותר גדול ו אם אינו יותר גדולÆ כך קיבלנו סיגנל שהוא ± בחלק החיובי של הגל הריבועי ו בחלק השליליÆ מה שנותר הוא לאפס את ה DC כלומר לכפול ב ולהחסיר ± כדי לקבל גל ריבועי שנע בין ± ל ± Æ זה הכל בינתיים כמו שאמרתי רצוי לנסות ולקמפל את כל הדוגמאות וכמובן גם את הקוד עצמו באתר לבחון את הדיאגרמות שמתקבלות ולוודא שהכל מובןÆ בהצלחהÆ 7